I've written this function to initialize a 2D array:
Code:
template<typename T, int iElements> void Initialize2D( T* Array[][iElements], int iElements1, int iElements2, T Value )
{
  std::cout << "1"; // These are for debugging
  std::cin.get();
  for( int I = 0; I < iElements1; I++ )
  {
    std::cout << "I" << I;
    std::cin.get();
    for( int C = 0; C < iElements2; C++ )
    {
      std::cout << "C" << C;
      std::cin.get();
      *Array[I][C] = Value;
    }
  }
  std::cout << "2";
  std::cin.get();
}
I call it like this:
Code:
bool* Visited[10][10];
Initialize2D<bool, 10>( Visited, 10, 10, false );
The output:
Code:
I0
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
I1
C0
*Crash*
So, basically, *Array[1][0] = false is causing a crash. I have no idea why though. Any ideas?